查看原文
其他

社区版TDH常见运维问题总结

2017-11-24 Coda6 大数据开放实验室

在使用社区版TDH的时候,常常需要对集群和服务进行管理运维,此过程中会遇到一些问题或者异常情况需要处理。本文整理了一些关于社区版的常见运维问题以及解决办法,在这里分享给各位。这些运维方法同样适用于TDH 5.x版本。

常见运维问题

组件配置文件与jar包的位置?

配置文件:/etc/<component>/conf

jar包位置:/usr/lib/<component>

组件的常用日志位置?

/var/log/<component_instance>

其中<component_instance>对应组件实例名称。

如何设定Manager日志文件的大小与数量?

如果/var/log划分的区间过小,日志需要的空间不足,可以根据实际情况调整组件日志的大小以及保存的日志数量。操作步骤如下:

在文件/etc/transwarp-manager/master/log4j.properties中找到下面两项参数:

  • *.MaxFileSize:用于设置服务的日志文件大小

  • *.MaxBackupIndex:用于设置服务的日志数量

如果Manager界面出现磁盘剩余不足的告警,应该怎么办?

这说明根目录空间所剩不多。根目录是系统目录,如果空间不足将造成很多问题,所以尽量不要在根目录放置过多文件。一旦出现这种告警,需要及时清理。处理方式如下:

首先进入根目录,执行下面的语句查看占用空间较大的目录:

du -h --max-depth=1|grep G

判断造成文件异常大的原因,按照不同情况采用不同策略清除文件:

  • 如果/var/log目录大到10g级别,可以删除其中命名带日期的旧日志。

  • 如果/hadoop/data文件夹很大,说明HDFS的文件目录被配到根目录下。这时需要挂载磁盘,将HDFS中的data.dir更改到磁盘目录下。

  • 如果/ngmr目录比较大,说明Inceptor的临时文件没有被及时清理,导致空间被占用,此时可以删除日期比较久远的文件。

  • 对于如安装包之类其他文件,建议删除无用文件,或者移动到其他磁盘。

如何在后台启停服务或者查看服务状态?

下面以Inceptor为例说明。

# 查看Inceptor相关服务角色的状态:

kubectl get po -owide | grep inceptor

# 停止Inceptor的Metastore角色:

kubectl delete -f /var/lib/transwarp-manager/master/content/resources/services/inceptor1/inceptor-metastore.yaml

# 启动Inceptor的Metastore角色:

kubectl create -f /var/lib/transwarp-manager/master/content/resources/services/inceptor1/inceptor-metastore.yaml

# 重启Inceptor的Metastore角色:

kubectl delete pod <inceptor_metastore_pod>

几点说明:

  • 启动和停止只能在Manager所在节点执行。

  • 重启可以在任意节点执行,但如果在非Manager节点上执行需要通过参数-s指定TOS Server。命令如下。

    kubectl  -s {任意一个tos master的IP}:8080 delete pod <inceptor_metastore_pod>

警报菜单栏中,health_check为什么报错time offset?

集群节点间的时间不同步,请同步节点时间。

如何手动同步节点间的时间?

首先停止集群上运行的所有服务。

然后执行下述命令关闭该节点(需要校对时间的节点)的ntpd服务。

systemctl stop ntpd

接着同主节点进行时间同步。

ntpdate <NTP Server hostname>

启动该节点(需要校对时间的节点)的ntpd服务。

systemctl start ntpd

最后重新启动集群上的所有服务。

无法向磁盘写入数据该怎么办?

首先通过如下命令检查目标磁盘空间:

df -h

若发现目标磁盘已满,请迁移磁盘。

然后执行下述命令检查磁盘健康状态以及读取速度:

# 检查健康状态

smartctl -H <target_disk>

# 检查读取速度

hdparm -Tt <target_disk>

如上述两项表示磁盘处于非健康状态,请考虑更换磁盘。

如果上面几项没有问题请执行下述命令,检查目标磁盘的inode占用情况:

df -i

如果发现inode的占用数量饱和,请删除无用的临时文件,释放inode。

当发现日志报错连接被拒绝提示Connection refused,应该怎么处理?

首先检查该节点是否可以ping通其他节点,以及是否可以被其他节点ping通。不通则需要检查网络。

其次检查/etc/hosts文件内容是否正确。

执行下述命令检查防火墙是否关闭:

systemctl status firewalld

如果发现防火墙处于开启状态,请执行下述语句关闭防火墙:

systemctl stop firewalld

systemctl disable firewalld

在Manager上点击组件的link后,为什么显示无法访问此网站?

请检查网页地址栏出现地址的是否引用了节点的hostname,若是则说明您没有将集群各个节点的ip和对应hostname配置在本地。

请将形如下述的内容配置在hosts文件中,实际内容请根据真实情况填写:

172.16.3.23 tw-node2023

  • Windows的hosts文件通常位于:C:\Windows\system32\drivers\etc\hosts

  • Linux的hosts文件通常位于:/etc/hosts

Manager无法连接Agent,报错Ask time out on …,应该如何解决?

在Manager节点执行下述命令:

nc -v <agent_hostname> 10208

其中<agent_hostname>表示无法连接上的节点的hostname,如果出现no route to host,需要检查Manager节点的/etc/hosts中hostname和ip的关联是否正确,以及是否已关闭节点的防火墙。

接着在Manager节点执行下述命令:

nc -v <agent_ip> 10208

其中<agent_ip>表示无法连接的节点的ip,如果出现connection time out,需要检查对应节点的agent是否正常。

然后在Manager节点ping目标节点:

ping <agent_ip>

可能出现ping不通的情况,需要检查网络问题。

接下来执行下述命令查看防火墙的状态

systemctl status firewalld

如果发现防火墙处于打开的状态,请执行下述语句关闭防火墙:

systemctl stop firewalld

systemctl disable firewalld

如果上述步骤执行下来的结果都正常,可能是机器比较慢导致agent无法连接,此时请延长/etc/transwarp-manager/master/application.conf中的超时时间设置remote-start-timeout,将之延长到60s,然后重启Manager。

如果上述步骤都不能解决问题,需要看具体报错解决。

对于已经添加进集群中的节点是否能修改它的主机名?

不能。Hadoop集群中的大部分逻辑都是用主机名/FQDN定位节点的,修改主机名对于Hadoop而言,类似放弃该节点并增加一个新的节点,相当于节点迁移。

提示许可证服务未正常工作,应如何解决?

在Manager页面上点击 管理→许可证 查看许可证服务状态是否正常。如果大于两个节点的License Server宕机,许可证服务将显示为“DOWN”的状态。此时请点击“启动”按钮启动许可证服务。

如何检查许可证过期时间?

点击管理→许可证,可以查看当前License的截止日期。

总结

本文给出的常见问题基本覆盖了告警处理、配置服务、服务起停等常见运维场景。如果读者想了解服务升级的方法,请参考如何在TDH社区版中进行服务升级

这里略去了一些corner cases,如果读者遇到了这里未提供的情况,欢迎登录星环论坛(http://support.transwarp.cn)进行查询或者提供反馈。


往期原创文章

如何在TDH社区版中进行服务升级

社区版TDH官方正式发布

Waterdrop的许可证申请

Search SQL:用于全文检索的SQL扩展(二)

Search SQL:用于全文检索的SQL扩展(一)

Guardian 5.0全新架构解析:大数据安全防御之盾(二)

Guardian 5.0全新架构解析:大数据安全防御之盾(一)




大数据开放实验室由星环信息科技(上海)有限公司运营,专门致力于大数据技术的研究和传播。若转载请在文章开头明显注明“文章来源于微信订阅号——大数据开放实验室”,并保留作者和账号介绍。


您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存